import numpy
import pandas
# from dependency import *
import dependency


def arr_info(FP_array_list: list) -> None:
    """【函数】显示ndarray的信息
    
    参数：
    + FP_array_list: [列表] 包含数组名称的列表。参数应为数组名的列表，如果传入单个数组，依然需要加上[ ]，否则将输出该数组的每个元素的信息
    """
    i = 0
    for FP_array in FP_array_list:
        i += 1
        print("【%d】" %i)
        if (FP_array.ndim != 0):
            print(" 多维数组（ndarray）:\n", FP_array)
            print(" 数组维数（ndim）:", FP_array.ndim)       # Number of Array Dimension（一维数组、二维数组等）
            print(" 维度元组（shape）:", FP_array.shape)     # Tuple of Array Dimension（类似矩阵的m行n列）
            print(" 数据类型（dtype）:", FP_array.dtype)     # Data-type of Array's Elements
            # print("\n")
        elif (FP_array.ndim == 0):
            print(" 数组元素（Element）:", FP_array)
    return None


array = numpy.array([1, 2, 3])
array.ndim
array.shape
array.dtype
print(type(array[1]))

data = numpy.array([1,2,3])
data


mat = numpy.array([[2,1,3],[4,5,6],[7,8,9]])

mat_det = numpy.linalg.det(mat)

mat_inv = numpy.linalg.inv(mat)

mat_dot_inv = numpy.dot(mat, mat_inv)

arr = numpy.array(mat_dot_inv, int)

arr_info([mat, mat_det, mat_inv, mat_dot_inv, arr])

frame1_2 = pandas.DataFrame(numpy.random.randn(8, 3), columns=["a", "b", "c"])
frame1_2.iloc[]


if (__name__ == "__main__"):
    # mod_acti()    # 仅当 from XX import * 时，__all__属性才起作用
    dependency.mod_acti()
    dependency.__print_info_ndarray(mat)    # 似乎依然可以访问“__”开头的函数
    dependency.arr_info([mat])
    dependency.arr_stat(mat)




#%%
print("hello")
#%%

